home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs07.d81 / stripper.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  3KB  |  72 lines

  1. 5 POKE56,31:CLR:GOTO2010
  2. 10 Z$=CHR$(.):PRINT"[147]"
  3. 11 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
  4. 12 PRINT"(ENTER 0 TO EXIT.)"
  5. 13 PRINT:PRINT"  8[145]":INPUTD:IFD=0THENEND
  6. 14 IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO11
  7. 15 POKE2,35:POKE184,8:POKE185,8:POKE186,D
  8. 16 POKE183,1:POKE187,2:POKE188,.:SYS65472
  9. 17 IFPEEK(783)AND1THENCLOSE8:PRINT"[147]?DEVICE";D;"NOT PRESENT":GOTO11
  10. 18 CLOSE8
  11. 20 OPEN8,8,0,"$"
  12. 22 PRINT"[147]LOADING DIRECTORY..."
  13. 23 SYS49152:IFPEEK(2)THEN25
  14. 24 PRINT"NO FILES ON DISK":GOTO11
  15. 25 PRINT"[147]ENTER PETASCII VALUE OF CHARACTERS TO"
  16. 26 PRINT"BE STRIPPED FROM END OF FILE."
  17. 27 PRINT"PRECEDE VALUE WITH $ FOR HEX ENTRY."
  18. 28 PRINT"PRESS RETURN FOR CONTROL Z (26 OR $1A)."
  19. 29 A$="":PRINT:INPUTA$:IFA$=""THENA$="26"
  20. 31 GOSUB400:IFFTHEN29
  21. 32 PRINT"[147]ONE MOMENT PLEASE..."
  22. 35 POKE2,A:OPEN15,D,15
  23. 40 GOSUB500:CLOSE8:OPEN8,D,8,"#":PRINT#15,"U1";8;0;18;S
  24. 45 PRINT#15,"B-P";8;P+1
  25. 47 GET#8,A$:POKE155,ASC(A$+Z$)
  26. 50 GET#8,A$:POKE156,ASC(A$+Z$)
  27. 51 PRINT#15,"B-P";8;P+28
  28. 52 GET#8,A$:L=ASC(A$+Z$)
  29. 55 GET#8,A$:H=ASC(A$+Z$)
  30. 57 PRINT"STRIPPING CHARACTERS [CHR$(";MID$(STR$(A),2);")]..."
  31. 60 POKE143,2:SYS49524
  32. 62 IFL=PEEK(251)ANDH=PEEK(252)THEN91
  33. 65 PRINT#15,"U1";8;0;18;S
  34. 70 PRINT#15,"B-P";8;P+28
  35. 75 PRINT#8,CHR$(PEEK(251));
  36. 80 PRINT#8,CHR$(PEEK(252));
  37. 85 PRINT#15,"U2";8;0;18;S
  38. 90 PRINT"VALIDATING (FEWER BLOCKS)...":PRINT#15,"V0:"
  39. 91 CLOSE8:CLOSE15
  40. 92 Q$=CHR$(34):PRINT"[147][157]";PEEK(253)+256*PEEK(254);"CHARACTERS WERE REMOVED."
  41. 94 PRINT"AFTER 1000 CHARACTERS ARE REMOVED, THE"
  42. 95 PRINT"DISK DRIVE SHOULD BE CLEANED WITH A"
  43. 96 PRINT"FINE CAMEL'S HAIR BRUSH.  THAT WILL"
  44. 97 PRINT"REDUCE THE RISK OF ";Q$;"BYTE BUILD-UP";Q$;","
  45. 98 PRINT"A MAJOR CAUSE OF DRIVE FAILURE."
  46. 99 GOTO11
  47. 400 M=256:F=.:N=.:A=.:IFASC(A$)=36THEN415
  48. 405 A=VAL(A$):IFA<.ORA>255THEN445
  49. 410 RETURN
  50. 415 B=ASC(RIGHT$(A$,N+1))AND127:IFB>70THEN445
  51. 420 IFB=36THEN440
  52. 425 RESTORE:B=B-47:FORI=.TOB:READY:NEXT
  53. 430 IFY<0THEN445
  54. 435 A=A+Y*16^N:N=N+1:GOTO415
  55. 440 IFA<MTHENRETURN
  56. 445 PRINT"ILLEGAL ENTRY":F=1:RETURN
  57. 490 DATA-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1
  58. 495 DATA-1,-1,-1,-1,10,11,12,13,14,15
  59. 500 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
  60. 510 GET#15,A$:S=ASC(A$+Z$):GET#15,A$:GET#15,A$
  61. 520 GET#15,A$:GET#15,A$:P=ASC(A$+Z$)
  62. 530 RETURN
  63. 600 INPUT#15,A,B$,C,E
  64. 610 F=.:IFA>19THENPRINT"[147]";A:PRINTB$:PRINTC,E:F=1
  65. 620 RETURN
  66. 2010 PRINT"[147]ONE MOMENT PLEASE..."
  67. 2020 P=PEEK(45)+256*PEEK(46)-1
  68. 2030 IFPEEK(P)THENP=P-1:GOTO2030
  69. 2040 P=P-790:S=49152
  70. 2050 FORI=.TO790:POKES+I,PEEK(P+I):NEXT
  71. 2060 POKE2063,48:GOTO10
  72.